#ifndef VERTEXLIST_H_
#define VERTEXLIST_H_
#include "List.h"
#include "Vertex.h"

class VertexList
{
	public:
	
	List<Vertex> * head;
	List<Vertex> * tail;
	int minVertices;
	int maxVertices;
	public:
	VertexList();
	VertexList(Vertex * headVertex);
	~VertexList();
	List<Vertex> * Add(Vertex * payload);
	void AddBefore(Vertex * payload, Vertex * after);
	void Remove(Vertex point);
	void Remove(Vertex * point);
	void HoverCheck(Mouse * mouse);
	Vertex * GetHoverVertex(Mouse * mouse);
	void GetHoverSegment(Mouse * mouse, Vertex ** left, Vertex ** right);
	void Draw();
	void ClearList();
	char * GetTag();
	char * GetBackwardsTag();
	char * GetRelativeTag(Vector2D relativePosition);
	int GetLength();
	void SetMin(int min);
	void SetMax(int max);
	bool Contains(Vertex * vertex);
};

#endif /*VERTEXLIST_H_*/
